Lightweight attribute-based signcryption (absc) method for cloud-fog-assisted internet-of-things (iot)

ABSTRACT

A lightweight attribute-based signcryption (ABSC) method for cloud-fog-assisted Internet-of-things: performing, by a central authority, system initialization to generate a system key pair, and disclosing a public key, the public key including a symmetric encryption algorithm (SEA) and a key derivation function (KDF); generating, by the central authority, a decryption key and an outsourcing decryption key based on a decryption attribute set of a data user, and generating a signature key and an outsourcing signature key based on a signature access structure; calling, by a data owner, a fog node for outsourcing signature, performing symmetric encryption on a plaintext based on a symmetric key, and performing ABSC on the symmetric key based on a defined encryption access structure; and calling, by the data user, a fog node for outsourcing signature verification, calling a fog node for outsourcing decryption, and performing symmetric decryption on a ciphertext based on an outsourcing decryption result.

CROSS REFERENCE TO RELATED APPLICATION

This patent application claims the benefit and priority of Chinese Patent Application No. 202010205743.8, filed on Mar. 23, 2020, the disclosure of which is incorporated by reference herein in its entirety as part of the present application.

TECHNICAL FIELD

The present disclosure relates to the field of attribute-based signcryption (ABSC), and in particular to a lightweight ABSC method for cloud-fog-assisted Internet-of-things (IoT).

BACKGROUND ART

Developed and extended from a conventional Internet, IoT links physical objects in a real world with a cyber world, to provide more efficient and intelligent services for people's lives. The IoT differs from the conventional network in: The IoT encompasses a variety of IoT devices. According to Cisco's Annual Visual Networking Index, machine-to-machine (M2M) connections supporting IoT applications will account for more than half of the world's 28.5 billion connected devices by 2022. On the other hand, there are very limited heterogeneous resources of the IoT devices for storage, computation, etc. Therefore, it is increasingly important to manage data in the IoT.

Cloud-assisted IoT is proposed to resolve a contradiction between massive data of the IoT and limited storage resources of the IoT device, specifically, massive data generated by the IoT are stored to a cloud storage center, and managed uniformly by a resource-rich cloud device. However, outsourced storage is bound to cause a series of security problems, and thus both confidentiality and authenticity of the data are hardly ensured. There are two direct methods to solve these problems, namely sign-then-encrypt, or encrypt-then-sign.

Conventional public key encryption can ensure the confidentiality of the data, but only implements one-to-one sharing, which violates an original intention of IoT design, namely providing the more efficient and intelligent services through data sharing. Presently, attribute-based encryption (ABE) is envisioned as a most promising approach to solve the above problems. It not only ensures the security of the data, but also realizes fine-grained data sharing. Nonetheless, regardless of the sign-then-encrypt or the encrypt-then-sign, the complexity of the scheme is a sum of complexities of two cryptographic primitives. In view of this, how to reduce computational burdens required by signature and encryption is a problem to be solved.

In recent years, in order to ensure the confidentiality and authenticity of the data, and further minimize computational burdens as much as possible, a number of ABSC schemes have been proposed. When the classic ABE scheme is applied to IoT scenarios, many problems arise. In ciphertext-policy attribute-based signature (CPABS), a device can define an access structure independently, which does not comply with an actual situation. Typically, anonymous authentication in most IoT scenarios is controlled by a central authority. Furthermore, according to key-policy ABE (KPABE), a data owner cannot define an access structure independently, which means that an access control right is not directly handed over to the data owner. In addition, the security of the ABE depends on mathematical assumptions of difficulties, which means that decryption burdens are hardly loaded by resource-limited IoT devices.

Therefore, while ensuring the confidentiality and authenticity of the data, how to reduce computational burdens required by signature and decryption to be more applicable to resource-limited IoT devices is a technical problem to be solved.

SUMMARY

In view of the above-mentioned deficiencies, an objective of the present disclosure is to provide a lightweight ABSC method for cloud-fog-assisted IoT, which can reduce computational burdens required by signature and decryption, while ensuring confidentiality and authenticity of data.

The present disclosure provides a lightweight ABSC method for cloud-fog-assisted IoT, including the following steps:

performing, by a central authority, system initialization to generate a system key pair, and disclosing a public key, the public key including a symmetric encryption algorithm (SEA) and a key derivation function (KDF);

assigning, by the central authority, a decryption attribute set to a registered data user, and generating, based on the decryption attribute set, a decryption key and an outsourcing decryption key corresponding to the data user; and assigning, by the central authority, a signature access structure to a data owner, and generating, based on the signature access structure, a signature key and an outsourcing signature key corresponding to the data owner;

selecting, by the data owner, an attribute set satisfying the signature access structure, and calling a fog node based on the outsourcing signature key for outsourcing signature; and

performing, by the data owner, symmetric encryption on a plaintext based on a symmetric key, performing ABSC on the symmetric key based on a defined encryption access structure to generate a signcryption ciphertext, and sending the signcryption ciphertext to a cloud storage center; and

calling, by a data user having an attribute set satisfying the encryption access structure, a fog node for outsourcing signature verification, and calling a fog node for outsourcing decryption; and performing, by the data user after verifying that a signature is legal according to an outsourcing signature verification result, symmetric decryption on the ciphertext based on an outsourcing decryption result to obtain the plaintext.

In the above implementation, the data user performs the symmetric encryption on plaintext data according to the symmetric key to generate the ciphertext, which improves an arithmetic speed and practicability compared with a scheme in which ABE is directly performed on massive data. By performing the ABSC on the symmetric key based on the defined encryption access structure of the data user, not only are confidentiality and authenticity of the symmetric key ensured, but also one-to-many sharing of the symmetric key is realized. By performing access control on the data user through the encryption access structure, the method allows a data user only having an attribute satisfying the access structure to access encrypted data, and prevents an illegal user from accessing the encrypted data. The cloud storage center stores the ciphertext, and the fog node assists the data owner for signature and decryption, which greatly alleviates a burden of a device.

Preferably, the key pair (PP,MSK) may be expressed as:

${PP} = \begin{matrix} \begin{Bmatrix} {G,G_{T},p,e,g,v,Y,\delta_{1},\delta_{2},u^{\prime},v^{\prime},H_{1},H_{2},H_{3},U_{e},U_{s},{KDF},} \\ {{\prod\limits_{SE}\left( {{Enc},{Dec}} \right)},\left\{ h_{w} \right\}_{{attw} \in U_{e}},\left\{ K_{w} \right\}_{{attw} \in U_{d}},\mu_{0},\left\{ \mu_{i} \right\}_{i \in {\lbrack l\rbrack}}} \end{Bmatrix} \\ {{MSK} = \left\{ a \right\}} \end{matrix}$

where, G and G^(T) each may be a p-order multiplicative group, g may be a generator of the G, and v may be an element of the G;

e may be a symmetric bilinear mapping function e: G×G→G_(T), and H₁, H₂ and H₃ each may be a collision-resistant hash function, specifically:

H ₁ :G→Z _(p) ,H ₂{0,1}*→Z _(p) *,H ₃:{0,1}*→{0,1}¹;

h_(w)∈Z_(p)*, may be a random value selected from a group Z*_(p) for a wth attribute in U_(e);

k_(w)∈Z_(p)*, may be a random value selected from the group Z*_(p) for a wth attribute in U_(s);

Y=e(g,g)^(α), α being a random value selected from the group Z*_(p);

Π_(SE)(Enc,Dec) is an initialized SEA, and KDF is an initialized KDF; and

δ₁, δ₂, u′, v′, K₀, and u₀ each are a random value selected from the group Z*_(p), and an array {u_(i)}_(i∈[l]) is a set of random values selected from the group Z*_(p).

Preferably, the decryption key SK_(d)=(SK,SK′,{SK_(w)}_(att) _(w) _(∈U) _(d,uid) ) may be expressed as:

SK=g ^(α) v ^(t)

SK′=g ^(t)

{SK _(w) =h _(w) ^(t) }att _(w) ∈U _(d,uid)

where, uid may be a user identity generated after a data user is registered to the central authority;

U_(d,uid) ∈U_(e), may be a decryption attribute set selected by the central authority for the data user; and

t may be a random value selected from the group Z*_(p);

the outsourcing decryption key TSK_(d) (TK′TK′,{TK_(w)}_(attw∈U) _(d,uid) ) may be expressed as:

T _(K) =g ^(α·t′) v ^(t·t′)

TK′=g ^(t·t′)

{TK _(w) =h _(w) ^(t·t′)}_(attw∈U) _(d,uid)

where, t′ may be a random value selected by the central authority from the group Z*_(p), and the t′ may serve as a decryption verification key VK_(d)=t′;

the signature key SKs may be expressed as:

D ₀ =g ^(α) ² (K ₀ K _(r))^(r) _(τ)

D ₀ ′=g ^(r) ^(τ) :

where, α1 may be a random value selected by the central authority from the group Z*_(p), α₁<α, α₂=α−α₁;

τ may be an additional attribute selected from the attribute set; and

r_(τ) may be a random number selected from the group Z*_(p) for the attribute τ; and

the outsourcing signature key TSK_(s)=({D_(i),D′_(i)D_(i,w)}_(i∈[ls])) may be expressed as:

D _(i) =g ^(λρ) ^(s) ^((i))(K ₀ K _(ρ) _(s) _((i)))^(r) ^(i)

D _(i) ′=g ^(r) ^(i)

D _(i,w) =K _(w) ^(r) ^(i) ,∀att _(w) ∈U _(s) /{att _(ρ) _(s) (i)}

where, (M_(s),ρ_(s)) may be a signature access structure assigned by the central authority to the data owner, M_(s), being a matrix l_(s)×k_(s), and ρ_(s) being a row mapping function;

(v₂, v₃, . . . , v_(ks)) may be a set of random numbers selected by the central authority from the group Z*_(p);

{right arrow over (v)}=(α₁, v₂, . . . , v_(ks)) may be a random vector constructed based on the random value α1;

λ_(ρ) _(s) _((i)) =M _(s,i) ×{right arrow over (v)}; and

r_(i) may be a random value selected from the group Z*_(p) for an ith row in the matrix M_(s) (M_(s), ρ_(s)).

Preferably, the selecting, by the data owner, an attribute set satisfying the signature access structure, and calling a fog node based on the outsourcing signature key for outsourcing signature may include:

selecting, by the data owner, an attribute set satisfying the signature access structure (M_(e),ρ_(s)) for the signature, the attribute set being: I_(s)={i:ρ_(s)(i)∈U_(s,sid)};

searching, based on the attribute set, a set of constants {w_(i)}_(i∈I) _(s) satisfying a following equation:

Σ_(i∈I) _(s) w _(i) M _(s,i)=(1,0, . . . ,0)k _(s)

where, M_(s,i) may represent the ith row of the matrix M_(s), i may represent an attribute mapped by the ith row of the matrix M_(s) in the attribute set I_(s), and w_(i) may represent a corresponding constant;

sending, by the data owner, the set of constants {w_(i)}_(i∈I) _(s) and the outsourcing decryption key to a fog node, the fog node serving as an outsourcing signature fog node;

selecting, by the outsourcing signature fog node, a random number ξ from the group Z*_(p) for the outsourcing signature, thereby obtaining a signature labeled as an outsourcing signature a′, the outsourcing signature σ′=(σ′,σ′₂) being expressed as:

$\begin{matrix} {\sigma_{1}^{\prime} = {g^{\xi}{\prod\limits_{i \in I_{s}}\left( D_{i}^{\prime} \right)^{w_{i}}}}} \\ {\sigma_{2}^{\prime} = {\left( {K_{0}{\prod\limits_{{attw} \in U_{s,{sid}}}K_{w}}} \right)^{\xi}{\prod\limits_{i \in I_{s}}\left( {{D_{i}\sum\limits_{{{att}w} \neq {\rho_{s}(i)}}^{{attw} \in U_{s,{sid}}}},D_{i,w}} \right)^{w_{i}}}}} \end{matrix}$

and

sending, by the outsourcing signature fog node, the outsourcing signature a′ to the data owner.

Preferably, the performing, by the data owner, symmetric encryption on a plaintext based on a symmetric key, and performing ABSC on the symmetric key based on a defined encryption access structure to generate a signcryption ciphertext may include:

constructing, by the data owner, the symmetric key based on the KDF, and performing the symmetric encryption on the plaintext based on the symmetric key to generate a ciphertext;

defining, by the data owner, an encryption access structure (M_(e),P_(e)), M_(e) being a matrix l_(e)×k_(e), and P_(e) being a row mapping function;

selecting, by the data owner, a random value s from the group Z*_(p) to take as a secret exponent, selecting a set of random values (a₂, a₃, . . . , a_(ke)) from the group Z*_(p), and constructing a random vector α=(s,α₂,α₃, . . . ,α_(ke));

converting the encryption access structure into a linear secret sharing scheme (LSSS) matrix to obtain an encryption access matrix M_(e), and calculating Φ_(ρ) _(∈[l]) =α×M_(e,i) for each row M_(a,i) in the encryption access matrix M_(e);

selecting, by the data owner, random values ζ and q_(s) from the group Z*_(p), and performing the signcryption to obtain the signcryption ciphertext, the signcryption ciphertext being expressed as:

$\begin{matrix} {E_{1} = g^{s}} \\ {E_{2} = \left( {\sigma_{1}^{\mu}\sigma_{2}} \right)^{s}} \\ \left\{ {E_{3,i} = {\vee_{\rho_{e}(i)}^{\Phi}h_{\rho_{e}(i)}^{- s}}} \right\}_{i \in {\lbrack l_{e}\rbrack}} \\ {E_{4} = {{Enc}\left( {{SEK}{{d,m}}} \right)}} \\ {\sigma_{0} = {u^{\prime{H({SEK})}}v^{\prime{H(d)}}}} \\ {\sigma_{1} = {g^{\xi}\sigma_{1}^{\prime}}} \\ {\sigma_{2} = {D_{0}{\sigma_{2}^{\prime}\left( {K_{0}{\prod\limits_{{attw} \in U_{s,{sid}}}K_{w}}} \right)}^{\xi}{E_{2}^{R\zeta}\left( {\mu_{0}{\prod\limits_{i \in {\lbrack l\rbrack}}\mu_{i}^{f_{i}}}} \right)}^{s}}} \end{matrix}$

where, μ=H₁(E₁)

key=Y ^(s)∥σ₀ ∥tt)

R=H ₂(E ₁ ∥E ₂ ∥E ₃ ∥E ₄∥σ₀∥σ₁ ∥M _(e) ∥U _(s,sid))

(f ₁ , . . . ,f ₁)∈{0,1}¹ =H ₃(σ₁ ,tt,M _(e) ,U _(s,sid))

SEK∥d may represent the key; and

tt may represent present time in response to the signature, and may be labeled as a signature time identity; and

sending, by the data user, the encryption access structure, the signcryption ciphertext and the signature time identity tt to the cloud storage center.

Preferably, the calling, by a data user having an attribute set satisfying an encryption access structure, a fog node for outsourcing signature verification may include:

verifying, by the data user, whether a following equation is satisfied:

|tt′−tt|<tt

where, tt′ may represent present time in response to the outsourcing signature verification, and may be labeled as a signature verification time identity, and tt may represent a system-default maximum time difference;

verifying, if the equation is satisfied, whether the attribute set of the data user satisfies the encryption access structure;

calculating, by the data user, following parameters if the attribute set of the data user satisfies the encryption access structure:

μ=H ₁(E ₁)

R=H ₂(E ₁ ∥E ₂ ∥E ₃ ∥E ₄∥σ₀∥σ₁ ∥M _(e) ∥U _(s,sid))

(f ₁ , . . . ,f ₁)∈{0,1}¹ =H ₃(σ₁ ,tt,M _(e) ,U _(s,sid));

selecting, by the data user, a random value x from the group Z*_(p) to take as a signature verification key VK_(S), and recalculating a partial signcryption ciphertext to generate TCT_(s)=(σ₀ ^(x),σ₁ ^(x),σ₂ ^(x),E₁ ^(x));

sending, by the data user, the μ, the R, the (f₁, . . . , f₁) and the TCT_(s) to the fog node, the fog node serving as an outsourcing verification fog node; and

performing, by the outsourcing verification fog node, the outsourcing signature verification to generate a signature verification result VR, the signature verification result VR being expressed as:

${VR} = {\frac{e\left( {g,\sigma_{2}^{x}} \right)}{{e\left( {\sigma_{1}^{s},{K_{0}{\prod\limits_{{attw} \in U_{s,{sid}}}K_{w}}}} \right)}{e\left( {\left( {\delta_{1}^{\mu}\delta_{2}} \right)^{R},\sigma_{0}^{S}} \right)}{e\left( {E_{1}^{S},{\mu_{0}{\prod\limits_{i \in {\lbrack l\rbrack}}\mu_{i}^{f_{i}}}}} \right)}}.}$

Preferably, the calling, by a data user having an attribute set satisfying an encryption access structure, a fog node for outsourcing decryption may include:

selecting an attribute set satisfying an encryption access structure (M_(e),ρ_(s)) for the decryption, the attribute set being:

I _(d) ={i:ρ _(s)(i)∈U _(s,sid)}

searching, based on the attribute set, a set of constants {c_(i)}_(ieI) _(s) satisfying a following equation:

Σ_(i∈I) _(d) =c _(i) M _(e,i)=(1,0, . . . ,0)k _(e)

where, a subscript i may be in one-to-one correspondence with a row in the matrix M_(e);

performing, by an outsourcing decryption fog node, the outsourcing decryption to obtain an outsourcing decryption result, a computational equation in the outsourcing decryption being:

${{TCT}^{\prime} = {\frac{e\left( {E_{1},{TK}} \right)}{{e\left( {{\prod\limits_{i \in I_{d}}\left( E_{3,i} \right)^{c_{i}}},{TK}^{\prime}} \right)}{e\left( {E_{1},{\prod\limits_{i \in I_{d}}\left( {TK}_{\rho_{d}(i)} \right)^{c_{i}}}} \right)}} = Y^{{st}^{\prime}}}};$

and

sending, by the outsourcing decryption fog node, the outsourcing decryption result to the data user.

Preferably, the data user may verify a legality of the signature according to a following signature verification equation:

Y ^(VK) ^(d) =VR.

Preferably, the data user may verify an integrity of the ciphertext according to a following ciphertext verification equation after verifying that the signature is legal according to the signature verification result:

σ₄ =u ^(′H(SEK)) v ^(′H(d)); and

Y^(s) may be restored based on the outsourcing decryption result after the integrity of the ciphertext is verified, the symmetric key may be generated based on the KDF, and the symmetric decryption is performed according to the symmetric key.

The lightweight ABSC method for cloud-fog-assisted IoT provided by the present disclosure achieves the following advantages:

1. By encrypting plaintext data through the SEA, the present disclosure improves the efficiency and practicability of encryption, and is more applicable to massive data.

2. The ABSC method realizes confidentiality and authenticity of the data. By encrypting the symmetric key with CPABE, the present disclosure realizes security and one-to-many sharing of the symmetric key. By performing access control on the data user through the encryption access structure, the present disclosure can allow a data user only having an attribute satisfying the access structure to decrypt and restore the symmetric key, and can prevent an illegal user from accessing encrypted data. On the other hand, the ABSC method uses KPABS that has better practicability and applicability than CPABS and has a constant signature size, thereby reducing a system transmission loss. To sum up, the present disclosure is a practical hybrid-policy ABSC scheme.

3. The data owner outsources ciphertext storage to the cloud storage center, and performs the signature with assistance of a fog node, which greatly alleviates burdens for storage and computation. The data user performs the outsourcing signature verification through the fog node, and outsources most decryption burdens to the fog node, such that the computation overhead of the device is low. Therefore, the present disclosure is applicable to resource-limited devices.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the technical schemes in the embodiments of the present disclosure more clearly, the accompanying drawings required for describing the embodiments are briefly described below. Obviously, the accompanying drawings in the following description show merely some embodiments of the present disclosure, and those of ordinary skill in the art would also be able to derive other accompanying drawings from these accompanying drawings without creative efforts.

The present disclosure is further described with reference to the accompanying drawings.

FIG. 1 is a flowchart of a lightweight ABSC method for cloud-fog-assisted IoT according to an embodiment of the present disclosure.

DETAILED DESCRIPTION OF THE EMBODIMENTS

The present disclosure is further described below in combination with accompanying drawings and specific embodiments so as to enable those skilled in the art to better understand and implement the present disclosure. The illustrated embodiments should not be construed as any limitation to the present disclosure. Embodiments and technical features in the embodiments of the present disclosure may be combined with each other without any conflict.

An embodiment of the present disclosure provides a lightweight ABSC method for cloud-fog-assisted IoT, which can reduce computational burdens required by signature and decryption, while ensuring confidentiality and authenticity of data.

Embodiment

As shown in FIG. 1 , the lightweight ABSC method for cloud-fog-assisted IoT includes the following steps:

S100: A central authority performs system initialization to generate a system key pair, and discloses a public key, the public key including an SEA and a KDF.

S200: The central authority assigns a decryption attribute set to a registered data user, and generates, based on the decryption attribute set, a decryption key and an outsourcing decryption key corresponding to the data user; and the central authority assigns a signature access structure to a data owner, and generates, based on the signature access structure, a signature key and an outsourcing signature key corresponding to the data owner.

S300: The data owner selects an attribute set satisfying the signature access structure, and calls a fog node based on the outsourcing signature key for outsourcing signature; and the data owner performs symmetric encryption on a plaintext based on a symmetric key, performs ABSC on the symmetric key based on a defined encryption access structure to generate a signcryption ciphertext, and sends the signcryption ciphertext to a cloud storage center.

S400: A data user having an attribute set satisfying the encryption access structure calls a fog node for outsourcing signature verification, and calls a fog node for outsourcing decryption; and after verifying that a signature is legal according to an outsourcing signature verification result, the data user performs symmetric decryption on the ciphertext based on an outsourcing decryption result to obtain the plaintext.

In Step S100, the key pair is generated as follows:

A security parameter λ is input, and two p-order multiplicative groups G and G_(T) are selected, where g is a generator of the G, and v is an element of the G.

A symmetric bilinear map e:G×G→G_(T) is selected.

Three collision-resistant hash functions H₁, H₂ and H₃ are selected, specifically, H₁:G→Z_(p)*, H₂:{0,1}*→Z_(p)*, and H₃:{0,1}*→{0,1}¹.

Initialized U_(e) is a universal set of encryption attributes. Initialized U_(s), is a universal set of signature attributes. The central authority selects a random value: h_(w)∈Z_(p)* for each attribute in the U_(e), and a random value K_(w) ∈Z_(p)* for each attribute in the U_(s).

The central authority selects a random value a from a group Z*_(p) to calculate Y=e(g,g)^(α).

The central authority selects random values δ₁, δ₂, u′, v′, K₀, and u₀ from the group Z*_(p), and selects a set of random values {u_(i)}_(i∈[l]).

A SEA Π_(SC)(Enc,Dec) is initialized, and a KDF is initialized.

The key pair (PP,MSK) is expressed as:

${PP} = {\begin{matrix} \begin{Bmatrix} {G,G_{T},p,e,g,v,Y,\delta_{1},\delta_{2},u^{\prime},v^{\prime},H_{1},H_{2},H_{3},U_{e},U_{s},{KDF},} \\ {{\prod\limits_{SE}\left( {{Enc},{Dec}} \right)},\left\{ h_{w} \right\}_{{attw} \in U_{e}},\left\{ K_{w} \right\}_{{attw} \in U_{d}},\mu_{0},\left\{ \mu_{i} \right\}_{i \in {\lbrack l\rbrack}}} \end{Bmatrix} \\ {{MSK} = {\left\{ a \right\}.}} \end{matrix}.}$

In Step S200, the decryption key is generated as follows:

A data user applies for registration to the central authority to obtain a user identity uid.

The central authority selects a decryption attribute set U_(d,uid) ∈U_(s) for the data user.

The central authority selects a random value t from the group Z*_(p) to calculate the decryption key, the decryption key SK_(d)=(SK,SK′,{SK_(w)}_(att) _(w) _(eU) _(d,uid) ) being expressed as:

SK=g ^(α) v ^(t)

SK′=g ^(t)

{SK _(w) =h _(w) ^(t) }att _(w) ∈U _(d,uid) _(o) .

The decryption key is generated as follows:

The central authority selects a random value t′ from the group Z*_(p) to take as a decryption verification key VK_(d)={dot over (t)}, and calculates the outsourcing decryption key, the outsourcing decryption key TSK_(d)=(TK,TK′,{TK_(w)}_(attw∈U) _(d,uid) ) being expressed as:

TK=g ^(α·t) ′v ^(t·t′)

TK′=g ^(t·t′)

{TK _(w) =h _(w) ^(t·t′)}_(attw∈U) _(d,uid) _(o) .

The signature key is generated as follows:

The central authority selects a random value α1 from the group Z*_(p), α1<α, and calculates α2=α−60₁.

The central authority selects an additional attribute T from the attribute set, and selects a random number r_(t) from the group Z*_(p) for the attribute T to calculate the signature key SK_(s), the signature key SK_(s)=(D₀,D₀′) being expressed as:

D ₀ =g ^(α) ² (K ₀ K _(τ))^(r) ^(τ)

D ₀ ′=g ^(r) ^(τ) .

The outsourcing signature key is generated as follows:

The central authority assigns a special signature access structure (M_(s), ρ_(s)) to the data owner, M_(s) being a matrix l_(s)×k_(s), and ρ_(s) being a row mapping function, and converts the signature access structure (M_(s), ρ_(s)) into an LSSS matrix to obtain a signature access matrix M_(s).

The central authority selects a set of random numbers (v₂, v₃, . . . , v_(ks)) from the group Z*_(p), uses the random value α1 to form a random vector {right arrow over (v)}=(α₁, v₂ . . . , v_(ks)), and calculates λρs(i)=M_(s,i)×{circumflex over (v)}.

For each row in the signature access matrix M_(s), a random value r is selected from the group Z*_(p), and the outsourcing signature key is calculated, the outsourcing signature key TSK_(s)=({D_(i),D_(i)′D_(i,w)}_(i∈[ls])) being expressed as:

D _(i) =g ^(λρ) ^(s(i)) (K ₀ K _(ρ) _(s) (i))^(r) ^(i)

D _(i) ′=g ^(r) ^(i)

D _(i,w) =K _(w) ^(r) ^(i) ,{att _(w) ∈U _(s) /att _(ρ) _(s) (i)}.

In Step S300, the fog node assists the data owner for the signature, specifically:

The data owner selects an attribute set satisfying the signature access structure (M_(s), ρ_(s)) for the signature, the attribute set being: I_(s)={i:ρ_(s)(s)∈U_(s,sid)}.

A set of constants {w_(i)}_(i∈I) _(s) : satisfying a following equation are searched based on the attribute set:

Σ_(i∈I) _(s) w _(i) M _(s,i)=(1,0, . . . ,0)k _(s)

where, M_(s,i), represents the ith row of the matrix M_(s), i represents an attribute mapped by the ith row of the matrix M_(s), in the attribute set I_(s), and w_(i) represents a corresponding constant.

The data owner sends the set of constants {w_(i)}_(i∈I) _(s) and the outsourcing decryption key to a fog node, the fog node serving as an outsourcing signature fog node.

The outsourcing signature fog node selects a random number ξ from the group Z*_(p) for the outsourcing signature, thereby obtaining a signature labeled as an outsourcing signature σ′, the outsourcing signature σ′=(σ′,σ′₂) being expressed as:

$\begin{matrix} {\sigma_{1}^{\prime} = {g^{\xi}{\prod\limits_{i \in I_{s}}\left( D_{i}^{\prime} \right)^{w_{i}}}}} \\ {\sigma_{2}^{\prime} = {\left( {K_{0}{\prod\limits_{{attw} \in U_{s,{sid}}}K_{w}}} \right)^{\xi}{\prod\limits_{i \in I_{s}}\left( {{D_{i}\sum\limits_{{{att}w} \neq {\rho_{s}(i)}}^{{attw} \in U_{s,{sid}}}},D_{i,w}} \right)^{w_{i}}}}} \end{matrix}.$

The outsourcing signature fog node sends the outsourcing signature σ′ to the data owner.

The outsourcing signature is a semi-signature. After the semi-signature is sent to the data owner, the data owner encrypts the plaintext and continues the signature, specifically:

The data owner constructs the symmetric key based on the KDF, and performs the symmetric encryption on the plaintext based on the symmetric key to generate a ciphertext.

The data owner defines an encryption access structure (M_(e),P_(e)), M_(e) being a matrix l_(e)×k_(e), and P_(e) being a row mapping function.

The data owner selects a random value s from the group Z*_(p) to take as a secret exponent, selects a set of random values (a₂, a₃, . . . , a_(ke)) from the group Z*_(p), and constructs a random vector α=(s,α₂,α₃, . . . , α_(ke)).

The encryption access structure is converted into an LSSS matrix to obtain an encryption access matrix M_(e), and Φ_(ρ) _(e(i)) =α×M_(e,i) is calculated for each row M_(e,i) in the encryption access matrix M_(e).

The data owner selects random values ζ and q_(k) from the group Z*_(p), and performs the signcryption to obtain the signcryption ciphertext, the signcryption ciphertext being expressed as:

$\begin{matrix} {E_{1} = g^{s}} \\ {E_{2} = \left( {\delta_{1}^{\mu}\delta_{2}} \right)^{s}} \\ \left\{ {E_{3,i} = {v^{\phi}{\,^{\rho_{e}(i)}h_{\rho_{e}(i)}^{- s}}}} \right\}_{i \in {\lbrack l_{e}\rbrack}} \\ {E_{4} = {{Enc}\left( {{SEK}{{d,m}}} \right)}} \\ {\sigma_{0} = g^{s \cdot ϛ}} \\ {\sigma_{1} = {\sigma_{1}^{\prime} \cdot D_{0}^{\prime} \cdot g^{q_{\kappa}}}} \\ {\sigma_{2} = {D_{0}{\sigma_{2}^{\prime}\left( {\,^{K_{0}}K_{\tau}} \right)}^{q_{\kappa}}{E_{2}^{R\zeta}\left( {\mu_{0}{\prod\limits_{i \in {\lbrack l\rbrack}}\mu_{i}^{f_{i}}}} \right)}^{s}}} \\ {\sigma_{3} = {u^{\prime{H({SEK})}}v^{\prime{H(d)}}}} \end{matrix}$

where, μ=H₁(E₁),

E₄=Enc(SEK∥d,m), is the ciphertext generated by performing the symmetric encryption on the plaintext according to the symmetric key, and SEK∥d is the symmetric key constructed by the data owner based on the KDF:

KDF(key,1)=SEK∥d

key=Y ^(s)∥σ₀ ∥tt,

tt representing present time in response to the signature, and being labeled as a signature time identity; and

m being plaintext data desired by the data owner for encryption.

R=H ₂(E ₁ ∥E ₂ ∥E ₃ ∥E ₄∥σ₀∥σ₁ ∥M _(e) ∥U _(s,sid)),

(f ₁ , . . . ,f ₁)∈{0,1}¹ =H ₃(σ₁ ,tt,M _(e) ,U _(s,sid));

The data user sends the encryption access structure, the signcryption ciphertext and the signature time identity tt to the cloud storage center.

In Step S400, the fog node assists the data user for designcryption. First of all, outsourcing signature verification is performed through the fog node, specifically:

The data user verifies whether a following equation is satisfied:

|tt′−tt|<tt

where, tt′ represents present time in response to the outsourcing signature verification, and is labeled as a signature verification time identity, and tt represents a system-default maximum time difference.

If the equation is satisfied, whether the attribute set of the data user satisfies the encryption access structure is verified.

The data user calculates following parameters if the attribute set of the data user satisfies the encryption access structure:

H=H ₁(E ₁)

R=H ₂(E ₁ ∥E ₂ ∥E ₃ ∥E ₄∥σ₀∥σ₁ ∥M _(e) ∥U _(s,sid))

(f ₁ , . . . ,f ₁)∈{0,1}¹ =H ₃(σ₁ ,tt,M _(e) ,U _(s,sid));

The data user selects a random value x from the group Z*_(p) to take as a signature verification key VK_(s), and recalculates a partial signcryption ciphertext to generate TCT_(s)=(σ₀ ^(x),σ₁ ^(x),σ₂ ^(x),E₁ ^(x)).

The data user sends the μ, the R, the (f₁, . . . , f₁) and the TCT_(s) to a fog node, the fog node serving as an outsourcing verification fog node.

The outsourcing verification fog node performs the outsourcing signature verification to generate a signature verification result VR, the signature verification result VR being expressed as:

${VR} = \frac{e\left( {g,\sigma_{2}^{x}} \right)}{{e\left( {\sigma_{1}^{s},{K_{0}{\prod\limits_{{attw} \in U_{s,{sid}}}K_{w}}}} \right)}{e\left( {\left( {\delta_{1}^{\mu}\delta_{2}} \right)^{R},\sigma_{0}^{S}} \right)}{e\left( {E_{1}^{S},{\mu_{0}{\prod\limits_{i \in {\lbrack l\rbrack}}\mu_{i}^{f_{i}}}}} \right)}}$

Upon a success of the outsourcing signature verification, an outsourcing decryption fog node performs outsourcing decryption, specifically:

An attribute set satisfying the signature access structure (M_(e),ρ_(s)) is selected for decryption, the attribute set being: I_(d)={i:ρ_(s)(i)∈U_(s,sid)};

A set of constants {c_(i)}_(i∈I) _(s) : satisfying a following equation are searched based on the attribute set:

Σ_(i∈I) _(d) c _(i) M _(e,i)=(1,0, . . . ,0)k _(e)

where, a subscript i is in one-to-one correspondence with a row in the matrix M_(e).

The outsourcing decryption fog node performs the outsourcing decryption to obtain an outsourcing decryption result, a computational equation in the outsourcing decryption being:

${TCT}^{\prime} = {\frac{e\left( {E_{1},{TK}} \right)}{{e\left( {{\prod\limits_{i \in I_{d}}\left( E_{3,i} \right)^{c_{i}}},{TK}^{\prime}} \right)}{e\left( {E_{1},{\prod\limits_{i \in I_{d}}\left( {TK}_{\rho_{d}(i)} \right)^{c_{i}}}} \right)}} = {Y^{{st}^{\prime}}.}}$

The outsourcing decryption fog node sends the outsourcing decryption result to the data user.

The outsourcing decryption result obtained from the outsourcing decryption of the fog node is a semi-ciphertext. The fog node sends the semi-ciphertext to the data user for decryption, specifically:

The data user verifies a legality of the signature according to a following signature verification equation:

Y ^(VK) ^(d) =VR.

The data user verifies an integrity of the ciphertext according to a following ciphertext verification equation after verifying that the signature is legal according to the signature verification result:

σ₄ =u ^(′H(SEK)) v ^(′H(d)).

Y^(s) is restored based on the outsourcing decryption result after the integrity of the ciphertext is verified, the symmetric key is generated based on the KDF, and the symmetric decryption is performed according to the plaintext.

The aforementioned examples are only preferred embodiments illustrated for fully explaining the present disclosure, and the claimed scope of the present disclosure is not limited thereto. Equivalent substitutions or transformations made by those skilled in the art on the basis of the present disclosure are both within the claimed scope of the present disclosure. The claimed scope of the present disclosure shall be determined by the claims. 

What is claimed is:
 1. A lightweight attribute-based signcryption (ABSC) method for cloud-fog-assisted Internet-of-things (IoT), comprising the following steps: performing, by a central authority, system initialization to generate a system key pair, and disclosing a public key, the public key comprising a symmetric encryption algorithm (SEA) and a key derivation function (KDF); assigning, by the central authority, a decryption attribute set to a successfully registered data user, and generating, based on the decryption attribute set, a decryption key and an outsourcing decryption key corresponding to the data user; and assigning, by the central authority, a signature access structure to a data owner, and generating, based on the signature access structure, a signature key and an outsourcing signature key corresponding to the data owner; selecting, by the data owner, an attribute set satisfying the signature access structure, and calling a fog node based on the outsourcing signature key for outsourcing signature; and performing, by the data owner, symmetric encryption on a plaintext based on a symmetric key, performing ABSC on the symmetric key based on a defined encryption access structure to generate a signcryption ciphertext, and sending the signcryption ciphertext to a cloud storage center; and calling, by a data user having an attribute set satisfying the encryption access structure, a fog node for outsourcing signature verification, and calling a fog node for outsourcing decryption; and performing, by the data user after verifying that a signature is legal according to an outsourcing signature verification result, symmetric decryption on the ciphertext based on an outsourcing decryption result to obtain the plaintext.
 2. The lightweight ABSC method for cloud-fog-assisted IoT according to claim 1, wherein the system key pair (PP,MSK) is expressed as: ${{PP} = \begin{matrix} \begin{Bmatrix} {G,G_{T},p,e,g,v,Y,\delta_{1},\delta_{2},u^{\prime},v^{\prime},H_{1},H_{2},H_{3},U_{e},U_{s},{KDF},} \\ {{\prod\limits_{SE}\left( {{Enc},{Dec}} \right)},\left\{ h_{w} \right\}_{{att}_{w} \in U_{e}},\left\{ K_{w} \right\}_{\in U_{s}},\mu_{0},\left\{ \mu_{i} \right\}_{i \in {\lbrack l\rbrack}}} \end{Bmatrix} \\ {{MSK} = \left\{ \alpha \right\}} \end{matrix}},$ wherein, G and G_(T) each are a p-order multiplicative group, g is a generator of the G, and v is an element of the G; e is a symmetric bilinear mapping function e:G×G→G_(T), and H₁, H₂ and H₃ each are a collision-resistant hash function, specifically: H ₁ :G→Z _(p) *,H ₂{0,1}*→Z _(p) *,H ₃:{0,1}*→{0,1}¹; U_(e) is a universal set of initialized encryption attributes, and U_(s), is a universal set of initialized signature attributes; h_(w)∈Z_(p)*, is a random value selected from a group Z*_(p) for a with attribute in the U_(e); K_(w)∈Z_(p)*, is a random value selected from the group Z*_(p) for a with attribute in the U_(s); Y=e(g,g)^(α), α being a random value selected from the group Z*_(p); Π_(SE)(Enc,Dec) is an initialized SEA, and KDF is an initialized KDF; and δ₁, δ₂, u′, v′, K₀, and u₀ each are a random value selected from the group Z*_(p), and an array {u_(i)}_(i∈[l]) is a set of random values selected from the group Z*_(p).
 3. The lightweight ABSC method for cloud-fog-assisted IoT according to claim 2, wherein the decryption key SK_(d)=(SK,SK′,{SK_(w)}_(att) _(w) _(∈U) _(d,uid) ) is expressed as: SK=g ^(α) v ^(t) SK′=g ^(t) {SK _(w) =h _(w) ^(t) }att _(w) ∈U _(d,uid), wherein, uid is a user identity generated after a data user is registered to the central authority; U_(d,uid) ∈U_(e) is a decryption attribute set assigned by the central authority to the data user; and t is a random value selected from the group Z*_(p); the outsourcing decryption key TSK_(d)=(TK,TK′,{TK_(w)}_(attw∈U) _(d,uid) ) is expressed as: TK=g ^(α·t′) v ^(t·i′) TK′=g ^(t·t′) {TK _(w) =h _(w) ^(t t′)}_(att) _(w) _(∈U) _(d,uid) wherein, t′ is a random value selected by the central authority from the group Z*_(p), and the t′ serves as a decryption verification key VK_(d)=t′; the signature key SK_(s)=(D₀,D₀′) is expressed as: D ₀ =g ^(α) ² (K ₀ K _(f))^(r) ^(τ) D ₀ ′=g ^(r) ^(τ) ; wherein, α1 is a random value selected by the central authority from the group Z*_(p), α₁<α, α₂=α−α₁; τ is an additional attribute selected from the attribute set; and r_(τ) is a random number selected from the group Z*_(p) for the attribute τ; and the outsourcing signature key TSK_(s)=({D_(i),D_(i)′D_(i,w)}_(i∈[ls])) is expressed as: D _(i) =g ^(λρ) ^(s) ω(K ₀ K _(ρ) _(s) (i))^(r) ^(i) D _(i) ′=g ^(r) ^(i) D _(i,w) =K _(w) ^(r) ^(i) ,∀att _(w) ∈U _(s) /{att _(ρ) _(s) (i)} wherein, (M_(s),P_(s)) is a signature access structure assigned by the central authority to the data owner, M_(s) being a matrix l_(s)×k_(s), and P_(s) being a row mapping function; (v₂, v₃, . . . , v_(ks)) is a set of random numbers selected by the central authority from the group Z*_(p); {right arrow over (v)}=(α₁,v₂, . . . , v_(ks)) is a random vector constructed based on the random value α1, λ_(ρ) _(s) _((i))=M_(s,i)×{right arrow over (v)}; and r_(i) is a random value selected from the group Z*_(p) for an ith row in the matrix M_(s) (M_(s),P_(s)).
 4. The lightweight ABSC method for cloud-fog-assisted IoT according to claim 3, wherein the selecting, by the data owner, an attribute set satisfying the signature access structure, and calling a fog node based on the outsourcing signature key for outsourcing signature comprises: selecting, by the data owner, an attribute set satisfying the signature access structure (M_(s),P_(s)) for the signature, the attribute set being: I_(s)={i:ρ_(s)(i)∈U_(s,sid)}; searching, based on the attribute set, a set of constants {w_(i)}_(i∈I) _(s) satisfying a following equation: Σ_(i∈I) _(s) w _(i) M _(s,i)=(1,0, . . . ,0)k _(s) wherein, M_(s,i) represents the ith row of the matrix M_(s), i represents an attribute mapped by the ith row of the matrix M_(s), in the attribute set I_(s), and w_(i) represents a corresponding constant; sending, by the data owner, the set of constants {w_(i)}_(i∈I) _(s) , and the outsourcing decryption key to a fog node, the fog node serving as an outsourcing signature fog node; selecting, by the outsourcing signature fog node, a random number ξ from the group Z*_(p) for the outsourcing signature, thereby obtaining a signature labeled as an outsourcing signature σ′, the outsourcing signature σ′=(σ′,σ′₂) being expressed as: $\begin{matrix} {\sigma_{1}^{\prime} = {g^{\xi}{\prod\limits_{i \in I_{s}}\left( D_{i}^{\prime} \right)^{w_{i}}}}} \\ {\sigma_{2}^{\prime} = {\left( {K_{0}{\prod\limits_{{attw} \in U_{s,{sid}}}K_{w}}} \right)^{\xi}{\prod\limits_{i \in I_{s}}\left( {{D_{i}\sum\limits_{{{att}w} \neq {\rho_{s}(i)}}^{{attw} \in U_{s,{sid}}}},D_{i,w}} \right)^{w_{i}}}}} \end{matrix};$ and sending, by the outsourcing signature fog node, the outsourcing signature σ′ to the data owner.
 5. The lightweight ABSC method for cloud-fog-assisted IoT according to claim 4, wherein the performing, by the data owner, symmetric encryption on a plaintext based on a symmetric key, and performing ABSC on the symmetric key based on a defined encryption access structure to generate a signcryption ciphertext comprises: defining, by the data owner, an encryption access structure (M_(e),P_(e)), M_(e) being a matrix l_(e)×k_(e), and P_(e) being a row mapping function; selecting, by the data owner, a random value s from the group Z*_(p) to take as a secret exponent, selecting a set of random values (a₂, a₃, . . . , a_(ke)) from the group Z*_(p), and constructing a random vector α=(s, α₂, α₃, . . . , α_(ke)); converting the encryption access structure into a linear secret sharing scheme (LSSS) matrix to obtain an encryption access matrix M_(e), and calculating Φ_(ρ) _(e(i)) =α×M_(e,i) for each row M_(e,i) in the encryption access matrix M_(e); selecting, by the data owner, random values ζ and q_(k) from the group Z*_(p), and performing the signcryption to obtain the signcryption ciphertext, the signcryption ciphertext being expressed as: $\begin{matrix} {E_{1} = g^{s}} \\ {E_{2} = \left( {\delta_{1}^{\mu}\delta_{2}} \right)^{s}} \\ \left\{ {E_{3,i} = {v^{\phi}{\,^{\rho_{e}(i)}h_{\rho_{e}(i)}^{- s}}}} \right\}_{i \in {\lbrack l_{e}\rbrack}} \\ {E_{4} = {{Enc}\left( {{SEK}{{d,m}}} \right)}} \\ {\sigma_{0} = g^{s \cdot ϛ}} \\ {\sigma_{1} = {\sigma_{1}^{\prime} \cdot D_{0}^{\prime} \cdot g^{q_{\kappa}}}} \\ {\sigma_{2} = {D_{0}{\sigma_{2}^{\prime}\left( {\,^{K_{0}}K_{\tau}} \right)}^{q_{\kappa}}{E_{2}^{R\zeta}\left( {\mu_{0}{\prod\limits_{i \in {\lbrack l\rbrack}}\mu_{i}^{f_{i}}}} \right)}^{s}}} \\ {\sigma_{3} = {u^{\prime{H({SEK})}}v^{\prime{H(d)}}}} \end{matrix}$ wherein, μ=H₁(E₁), E₄ Enc(SEK∥d, m), is the ciphertext generated by performing the symmetric encryption on the plaintext according to the symmetric key, and SEK∥d is the symmetric key constructed by the data owner based on the KDF: KDF(key,1)SEK∥d key=Y″∥σ ₀ ∥tt, tt representing present time in response to the signature, and being labeled as a signature time identity; and m being plaintext data desired by the data owner for encryption, R=H ₂(E ₁ ∥E ₂ ∥E ₃ ∥E ₄∥σ₀∥σ₁ ∥M _(e) ∥U _(s,sid)), (f ₁ , . . . ,f ₁)∈{0,1}¹ =H ₃(σ₁ ,tt,M _(e) ,U _(s,sid)); and sending, by the data user, the encryption access structure, the signcryption ciphertext and the signature time identity tt to the cloud storage center.
 6. The lightweight ABSC method for cloud-fog-assisted IoT according to claim 5, wherein the calling, by a data user having an attribute set satisfying an encryption access structure, a fog node for outsourcing signature verification comprises: verifying, by the data user, whether a following equation is satisfied: |tt*−tt|<tt wherein, tt′ represents present time in response to the outsourcing signature verification, and is labeled as a signature verification time identity, and tt represents a system-default maximum time difference; verifying, if the equation is satisfied, whether the attribute set of the data user satisfies the encryption access structure; calculating, by the data user, following parameters if the attribute set of the data user satisfies the encryption access structure: μ=H ₁(E ₁) R=H ₂(E ₁ ∥E ₂ ∥E ₃ ∥E ₄∥σ₀∥σ₁ ∥M _(e) ∥U _(s,sid)) (f ₁ , . . . ,f ₁)∈{0,1}¹ =H ₃(σ₁ ,tt,M _(e) ,U _(s,sid)): selecting, by the data user, a random value x from the group Z*_(p) to take as a signature verification key Vk_(s), and recalculating a partial signcryption ciphertext to generate TCT_(s)=(σ₀ ^(x),σ₁ ^(x),σ₂ ^(x),E₁ ^(x)); sending, by the data user, the μ, the R, the (f₁, . . . , f₁) and the TCT_(s) to the fog node, the fog node serving as an outsourcing verification fog node; and performing, by the outsourcing verification fog node, the outsourcing signature verification to generate a signature verification result VR, the signature verification result VR being expressed as: ${VR} = {\frac{e\left( {g,\sigma_{2}^{x}} \right)}{{e\left( {\sigma_{1}^{s},{K_{0}{\prod\limits_{{att}_{w} \in U_{S,{sid}}}K_{w}}}} \right)}{e\left( {\left( {\delta_{1}^{\mu}\delta_{2}} \right)^{R},\sigma_{0}^{S}} \right)}{e\left( {E_{1}^{S},{\mu_{0}{\prod\limits_{i \in {\lbrack l\rbrack}}\mu_{i}^{f_{i}}}}} \right)}}.}$
 7. The lightweight ABSC method for cloud-fog-assisted IoT according to claim 6, wherein the calling, by a data user having an attribute set satisfying an encryption access structure, a fog node for outsourcing decryption comprises: selecting an attribute set satisfying an encryption access structure (M_(e), ρ_(s)) for the decryption, the attribute set being: I _(d) ={i:ρ _(s)(i)∈U _(s,sid)}; searching, based on the attribute set, a set of constants {c_(i)}_(i∈I) _(s) satisfying a following equation: Σ_(i∈I) _(d) c _(i) M _(e,i)=(1,0, . . . ,0)k _(e) wherein, a subscript i is in one-to-one correspondence with a row in the matrix M_(e); performing, by an outsourcing decryption fog node, the outsourcing decryption to obtain an outsourcing decryption result, a computational equation in the outsourcing decryption being: ${{TCT}^{\prime} = {\frac{e\left( {E_{1},{TK}} \right)}{{e\left( {{\prod\limits_{i \in I_{d}}\left( E_{3,i} \right)^{c_{i}}},{TK}^{\prime}} \right)}{e\left( {E_{1},{\prod\limits_{i \in I_{d}}\left( {TK}_{\rho_{d}(i)} \right)^{c_{i}}}} \right)}} = Y^{{st}^{\prime}}}};$ and sending, by the outsourcing decryption fog node, the outsourcing decryption result to the data user.
 8. The lightweight ABSC method for cloud-fog-assisted IoT according to claim 7, wherein the data user verifies a legality of the signature according to a following signature verification equation: Y ^(VK) ^(d) =VR.
 9. The lightweight ABSC method for cloud-fog-assisted IoT according to claim 8, wherein the data user verifies an integrity of the ciphertext according to a following ciphertext verification equation after verifying that the signature is legal according to the signature verification result: σ₄ =u′ ^(H*(SEK)) v′ ^(H(d)); and Y^(s) is restored based on the outsourcing decryption result after the integrity of the ciphertext is verified, the symmetric key is generated based on the KDF, and the symmetric decryption is performed according to the symmetric key. 